Gesture control of interactive events using multiple wearable devices

ABSTRACT

Systems and methods for gesture control of an interactive event using multiple wearable devices are herein disclosed as comprising, in an implementation, receiving signal data indicative of at least one gesture from a first sensor of a first wearable device and a second sensor of a second wearable device, performing pre-processing on the signal data by a computing device in communication with the first wearable device and the second wearable device, performing feature extraction on the pre-processed signal data by the computing device, and determining the at least one gesture based on the feature extracted signal data and offline training data by the computing device. In an implementation, the first sensor and the second sensor comprise one or more of a three-axis accelerometer, a six-axis accelerometer, or an electromyography sensor, and can be configured to calibrate the other.

TECHNICAL FIELD

The present disclosure relates to gesture control of interactive eventsusing multiple wearable devices.

BACKGROUND

Wearable devices are becoming increasingly commonplace. They may be usedin a variety of contexts, such as to monitor the health of a user bymeasuring vital signals, track a user's exercise and fitness progress,check a user's emails or social media accounts, etc. In certainapplications, wearable devices may be configured to interact with nearbyobjects. For example, a wearable device may be configured to operate atelevision or computer using Bluetooth or similar wirelesscommunications technology. The wearable device may further be usable inconnection with software, such as an application executed on a mobiledevice, for communicating data or interfacing with other devices.

SUMMARY

Disclosed herein are implementations of systems and methods for gesturecontrol of interactive events using multiple wearable devices. Animplementation of the disclosure is a method for gesture control of aninteractive event using multiple wearable devices, comprising receiving,from a first sensor of a first wearable device and a second sensor of asecond wearable device, signal data indicative of at least one gesture,performing, by a computing device in communication with the firstwearable device and the second wearable device, pre-processing on thesignal data, performing, by the computing device, feature extraction onthe pre-processed signal data, and determining, by the computing device,the at least one gesture based on the feature extracted signal data andoffline training data.

Another implementation of the disclosure is a wearable device forgesture control of an interactive event, comprising a body configured tobe coupled to a portion of a user, a sensor comprising an accelerometerand an electromyography sensor, a communication component configured tocommunicate signal data generated by the sensor to at least one of acomputing device or a second wearable device in communication with thecomputing device, and a memory and a processor configured to executeinstructions stored in the memory to generate signal data indicative ofa motion of the wearable device and a muscle activity of the portion ofthe user to which the body is coupled and communicate the signal data tothe computing device for determining at least one gesture made by theuser in connection with the interactive event.

Another implementation of the disclosure is a system for gesture controlof an interactive event using multiple wearable devices, comprising afirst wearable device comprising a first accelerometer, a firstelectromyography sensor, and a first communication component, secondwearable device comprising a second accelerometer, a secondelectromyography sensor, and a second communication component, acomputing device in communication with the first communication componentand the second communication component, the computing device comprisinga memory and a processor configured to execute instructions stored inthe memory to receive signal data indicative of at least one gesturefrom the first wearable device and the second wearable device, performpre-processing on the signal data, perform feature extraction on thepre-processed signal data, and determine the at least one gesture basedon the feature extracted signal data and offline training data.

Details of these implementations, modifications of these implementationsand additional implementations are described below.

BRIEF DESCRIPTION OF THE DRAWINGS

The description herein makes reference to the accompanying drawings,where like reference numerals refer to like parts throughout the severalviews, and where:

FIG. 1 is an illustration showing an implementation of a user usingmultiple wearable devices for gesture control of an interactive event;

FIG. 2 is a diagram showing an implementation of data communicationbetween multiple wearable devices and a computing device usable withinimplementations of the disclosure;

FIG. 3 is a diagram of an implementation of a wearable device usablewithin implementations of the disclosure;

FIG. 4 is a diagram of an implementation of a computing device usablewithin implementations of the disclosure;

FIGS. 5A and 5B are logic diagrams showing implementations of using afirst sensor to calibrate a second sensor in accordance withimplementations of the disclosure;

FIG. 6 is a logic diagram showing an implementation of how data frommultiple wearable devices are processed in accordance withimplementations of the disclosure;

FIG. 7 is a flowchart showing an implementation of a method for using animplementation of the disclosure for gesture control of interactiveevents using multiple wearable devices;

FIG. 8 is a flowchart showing an implementation of a method forperforming pre-processing on signal data received from multiple wearabledevices usable within implementations of the disclosure;

FIG. 9 is a flowchart showing an implementation of a method forperforming adaptive filtering using independent component analysisusable within implementations of the disclosure; and

FIG. 10 is a flowchart showing an implementation of a method fordetermining gestures based on feature extracted signal data and offlinetraining data usable within implementations of the disclosure.

DETAILED DESCRIPTION

Gesture recognition is used in various fields, including automotive,transit, consumer electronics, gaming, healthcare, and others. Gesturerecognition refers generally to the identification of various gesturescommunicated by a person. It can also refer to the ability of a personor device to respond to various gestures in some meaningful way based onhow the gestures are communicated. For example, gesture recognition canbe used to control interactive events using devices configured tocommunicate data indicative of the gestures to a device on which theevent occurs or is performed.

Configuring a device to effectively communicate a user's gesture forcontrolling an interactive event is complicated by the complexity ofgestures and limitations on hardware capability. For example,determining that a user pointed a finger in a direction can be difficultwhere the gesture control device is not configured to detect movementsassociated with the user's finger or where the applicable movementscannot be discerned because of an abundance of movement data that isidentified.

Solutions in various fields have attempted to solve the issue usingdifferent sensors to detect appropriate user gestures. For example, afirst solution uses an RGB camera and an infrared laser as a depthsensor to scan an environment for movement. This solution can be used totrack a user's movement throughout the environment, but it is not ableto discern the specific gestures because it cannot sense the user'smuscular activity. Another solution thus uses an electromyography (EMG)sensor within an armband to detect muscular activity in a user's arm.This way, signals indicative of a position and orientation of muscleswithin the user's arm can be used to more accurately determine gestures.However, this solution still fails because it cannot properly detect themotion, rotation, position, or orientation of the user's arm itself.

Implementations of the present disclosure include using multiplewearable devices to identify gestures for controlling an interactiveevent. Signal data indicative of a user's gestures can be communicatedfrom sensors in first and second wearable devices, such as EMG sensorsand accelerometers operative on a variety of axes, to a computing deviceon or through which an interactive event (e.g., a video game) isdisplayed, executed, or otherwise performed. The wearable devices can beheld, worn, or otherwise coupled to the user as needed to accuratelyidentify or generate the signal data by the sensors, for example, basedon the specific manner in which the interactive event is interactivewith the user. The signal data, prior to communication from the wearabledevices, upon receipt by the computing device, or at some other point,can be processed to accurately identify the gestures made by the user.For example, signal data communicated from EMG sensors andaccelerometers can undergo pre-processing to remove extraneous signalfeatures, feature extraction to isolate signal features usable foridentifying the gestures, and gesture recognition (e.g., using offlinetraining based on labeled data) to determine the gestures.

The systems and methods of the present disclosure address problemsparticular to gesture recognition systems, particularly, for example,those that use multiple devices to communicate signal data. Thesegesture recognition-specific issues are solved by the disclosedimplementations. The nature of gesture recognition systems andinteractive events controllable by them, which involve increasinglycomplex technology, necessitates the development of new ways tocommunicate and process signal data indicative of user gestures toaccurately detect the user gestures and execute instructions for usingthe specific, detected gestures to control interactive events.

FIG. 1 is an illustration 100 showing an implementation of a user usingmultiple wearable devices for gesture control of an interactive event.In an implementation, and as shown in the figure, the wearable devicescan be wristbands worn around a user's wrist. Signal data indicative ofthe user's gestures can be generated by sensors of the wearable devices.The signal data can thereafter be communicated to a computing deviceconfigured to identify gestures based on the signal data. The computingdevice, or another device in communication with it, can be used toprocess an interactive event. For example, and as shown in the figure, aperson playing a racing video game can control a car using wristbands asthe wearable devices. The manner in which signal data communicated bythe wearable devices can be used to control the video game can dependupon the program instructions of the video game. For example, andwithout limitation, a wearable device on the user's right arm can beused to control a velocity and acceleration of the vehicle, whereas awearable device on the user's left arm can be used to control adirection of movement of the vehicle.

Illustration 100 represents only a single implementation of usingmultiple wearable devices for gesture control of an interactive event.For example, other implementations may include, without limitation,signal data communicated from the wearable devices being used to controlother types of video games, selection of television channels,authentication and security measures (e.g., by requiring that specificgestures be made to grant access to electronic content or devices), andso on. The interactive event can be any event, process, instruction,occurrence, performance, or other action that involves user interaction,namely, based on a gesture communicated in connection with the use ofthe wearable devices. The interactive event can occur in a localenvironment or over a network based on the nature of the interactiveevent and a computing device through which the interactive event can becontrolled using the signal data communicated from the wearable devices.

FIG. 2 is a diagram 200 showing an implementation of data communicationbetween multiple wearable devices 202, 204 and a computing device 206usable within implementations of the disclosure. Wearable devices 202,204 can be implemented as any suitable wearable device, such as a brace,wristband, arm band, leg band, ring, headband, and the like. In animplementation, one or more of wearable devices 202, 204 comprise a bodyconfigured to be coupled to a portion of a user. For example, the bodycan be a band wearable about a user's wrist, ankle, arm, leg, or anyother suitable part of the user's body. Various components for theoperation of wearable devices 202, 204, such as those discussed belowwith respect to FIG. 3, may be disposed within or otherwise coupled toportions of the body. In an implementation wherein the body of one ormore of wearable devices 202, 204 comprises a band, a securing mechanism245 can be included to secure the band to the user. The securingmechanism 245 can comprise, for example, a slot and peg configuration, asnap-lock configuration, or any other suitable configuration forsecuring the band to the user.

Computing device 206 can be implemented as any suitable computing deviceor devices, such as one or more mobile telephones, tablet computers,laptop computers, notebook computers, desktop computers, video gameconsoles, televisions, server computers, mainframe computers, computerworkstations, and the like. In an implementation, computing device 206comprises instructions executable by a processor for generating,producing, or otherwise communicating an interactive event controllableat least in part using wearable devices 202, 204. For example, in animplementation wherein computing device 206 is a video game console,computing device 206 can cause data indicative of a video gamecontrollable using wearable device 202, 204 to be output to display on acoupled television. In an implementation, computing device 206 comprisesinstructions for communicating data received from wearable devices 202,204 to another device. For example, in an implementation whereincomputing device 206 is a network device, such as a router, computingdevice 206 can receive data from wearable devices 202, 204 andcommunicate the data to another computer configured to process the data.In an implementation, computing device 206 can both process dataindicative of an interactive event (e.g., by executing instructions forvideo game software, either directly or indirectly through anotherdevice) and/or signal data indicative of gestures for controlling theinteractive event (e.g., from wearable devices 202, 204).

In an implementation, wearable devices 202, 204 and computing device 206can communicate with one another. Any type of system can be used tofacilitate this communication, including, without limitation, wired orwireless versions (as applicable) of Internet, intranet, Ethernet, WiFi,Bluetooth, radio frequency, near field communication (NFC), codedivision multiple access (CDMA), global system for mobile communications(GSM), long-term evolution (LTE), or the like. The communication can beover a wired or wireless network using routers, switches relays,servers, or the like for connecting the devices. In an implementation,the network used for facilitating communication between the devices canbe a cloud computing environment. In an implementation, the network canbe a local area network, Internet of Things (IoT) network,machine-to-machine network, or the like.

In an implementation, wearable devices 202, 204 can be used to calibrateone another, for example, based on direct communication between wearabledevices 202, 204 or indirect communication, such as through computingdevice 206. Calibration can be used to reconfigure aspects of thesensors of wearable devices 202, 204, for example, to adjust how or whendata is measured or otherwise generated by the sensors. In animplementation, calibration can be performed to adjust a sensitivityand/or accuracy of one or both of wearable devices 202, 204. In animplementation, for example, where the user can couple wearable devicesto different portions of his or her body (e.g., by holding or wearingthem by or around a hand, foot, arm, leg, etc.), calibration can beperformed to recognize the portion of the user's body to which one orboth of wearable devices 202, 204 is or are coupled, for example, basedon a position of one with respect to the other.

FIG. 3 is a diagram of an implementation of a wearable device 300 usablewithin implementations of the disclosure. Wearable device 300 can beimplemented by one or more wearable devices, such as the implementationsof the wearable devices discussed above with respect to FIG. 2. In animplementation, wearable device 300 comprises CPU 302, memory 304,sensors 306, and communications component 308. One example of CPU 302 isa conventional central processing unit. CPU 302 may include single ormultiple processors each having single or multiple processing cores.Alternatively, CPU 302 may include another type of device, or multipledevices, capable of manipulating or processing information now-existingor hereafter developed. Although implementations of wearable device 300can be practiced with a single CPU as shown, advantages in speed andefficiency may be achieved using more than one CPU.

Memory 304 can comprise random access memory device (RAM) or any othersuitable type of storage device. Memory 304 may include executableinstructions and data for immediate access by CPU 302, such as datagenerated and/or processed in connection with sensors 306. Memory 304may include one or more DRAM modules such as DDR SDRAM. Alternatively,memory 304 may include another type of device, or multiple devices,capable of storing data for processing by CPU 302 now-existing orhereafter developed. CPU 302 may access and manipulate data in memory304 via a bus.

Sensors 306 can be one or more sensors disposed within or otherwisecoupled to wearable device 300, for example, for identifying, detecting,determining, or otherwise generating signal data indicative ofmeasurements associated with wearable device 300 and/or a user wearingwearable device 300. In an implementation, sensors 306 can comprise oneor more EMG sensors, accelerometers, cameras, lights, touch sensors, andthe like. The accelerometers can be three-axis, six-axis, nine-axis orany other suitable accelerometers. The cameras can be RGB cameras,infrared cameras, monochromatic infrared cameras, or any other suitablecameras. The lights can be infrared light emitting diodes (LED),infrared lasers, or any other suitable lights. Implementations ofsensors 306 can include a single sensor, one of each of the foregoingsensors, or any combination of the foregoing sensors. In animplementation, a first wearable device comprises a first sensor and asecond wearable device comprises a second sensor, wherein the firstsensor and the second sensor can be the same sensor or combination ofsensors or different sensors altogether. In an implementation, thesignal data can be identified, detected, determined, or otherwisegenerated based on any single sensor or combination of sensors acrossone or more wearable devices.

In an implementation, a sensor of a first wearable device can be used tocalibrate a sensor of a second wearable device. For example, sensors 306of a first wearable device can be used to calibrate like sensors of asecond wearable device (e.g., by using a first EMG sensor to calibrate asecond EMG sensor). As another example, sensors 306 of a first wearabledevice can be used to calibrate different sensors of a second wearabledevice (e.g., by using an EMG sensor to calibrate an accelerometer).Implementations for using a first sensor to calibrate a second sensorare discussed below with respect to FIGS. 5A and 5B.

Communications component 308 is a hardware component configured tocommunicate data (e.g., measurements, etc.) from sensors 306 to one ormore external devices, such as another wearable device or a computingdevice, for example, as discussed above with respect to FIG. 2. In animplementation, communications component 308 comprises an activecommunication interface, for example, a modem, transceiver,transmitter-receiver, or the like. In an implementation, communicationscomponent 308 comprises a passive communication interface, for example,a quick response (QR) code, Bluetooth identifier, radio-frequencyidentification (RFID) tag, a near-field communication (NFC) tag, or thelike. Implementations of communications component 308 can include asingle component, one of each of the foregoing types of components, orany combination of the foregoing components.

Wearable device 300 can also include other components not shown in FIG.3. For example, wearable device 300 can include one or more input/outputdevices, such as a display. In an implementation, the display can becoupled to CPU 302 via a bus. In an implementation, other output devicesmay be included in addition to or as an alternative to the display. Whenthe output device is or includes a display, the display may beimplemented in various ways, including by a LCD, CRT, LED, OLED, etc. Inan implementation, the display can be a touch screen display configuredto receive touch-based input, for example, in manipulating data outputto the display.

FIG. 4 is a diagram of an implementation of a computing device 400usable within implementations of the disclosure. Computing device 400can be implemented by one or more wearable devices, such as theimplementations of the wearable devices discussed above with respect toFIG. 2. As with the CPU of FIG. 3, one example of CPU 402 is aconventional central processing unit. CPU 402 may include single ormultiple processors each having single or multiple processing cores.Alternatively, CPU 402 may include another type of device, or multipledevices, capable of manipulating or processing information now-existingor hereafter developed. Although implementations of computing device 400can be practiced with a single CPU as shown, advantages in speed andefficiency may be achieved using more than one CPU.

As with the memory of FIG. 3, memory 404 can comprise RAM or any othersuitable type of storage device. Memory 404 may include executableinstructions and data for immediate access by CPU 402. Memory 404 mayinclude one or more DRAM modules such as DDR SDRAM. Alternatively,memory 404 may include another type of device, or multiple devices,capable of storing data for processing by CPU 402 now-existing orhereafter developed. CPU 402 may access and manipulate data in memory404 via bus 406.

Storage 408 can include executable instructions along with other data.Examples of executable instructions may include, for example, anoperating system and one or more application programs for loading inwhole or part into memory 404 and to be executed by CPU 402. Theoperating system may be, for example, Windows, Mac OS X, Linux, oranother operating system suitable to the details of this disclosure.Storage 408 may comprise one or multiple devices and may utilize one ormore types of storage, such as solid state or magnetic.

Application program 410 can be executable instructions for processingsignal data communicated from one or more wearable devices, processingan interactive event, or both. For example, in an implementation wherecomputing device 400 directly controls the interactive event (e.g., byexecuting instructions for the interactive event using CPU 402 withoutanother device being used to perform the interactive event), applicationprogram 410 can comprise executable instructions for receiving thesignal data, processing the signal data, and effecting a change to theinteractive event based on the signal data, for example, by executinginstructions indicative of the signal data responsive to the interactiveevent. In another example, in an implementation where computing device400 does not directly control the interactive event and insteadcommunicates the signal data to one or more other devices performing theinteractive event, application program 410 can comprise executableinstructions for receiving the signal data and communicating the signaldata to the one or more other devices.

Computing device 400 can also include other components not shown in FIG.4. For example, computing device 400 can include one or moreinput/output devices, such as a communications component and a display.In an implementation, the communications component and/or display can becoupled to CPU 402 via bus 406. In an implementation, communicationscomponent 308 comprises an active communication interface, for example,a modem, transceiver, transmitter-receiver, or the like. In animplementation, the communications component can be a passivecommunication interface, for example, a quick response (QR) code,Bluetooth identifier, radio-frequency identification (RFID) tag, anear-field communication (NFC) tag, or the like. Implementations of thecommunications component can include a single component, one of each ofthe foregoing types of components, or any combination of the foregoingcomponents. In an implementation, other output devices may be includedin addition to or as an alternative to the display. When the outputdevice is or includes a display, the display may be implemented invarious ways, including by a LCD, CRT, LED, OLED, etc. In animplementation, the display can be a touch screen display configured toreceive touch-based input, for example, in manipulating data output tothe display.

FIGS. 5A and 5B are logic diagrams 500A and 500B, respectively, showingimplementations of using a first sensor to calibrate a second sensor inaccordance with implementations of the disclosure. Referring to FIG. 5A,a first sensor signal 502A can be generated, for example, by or inassociation with a first sensor of a first wearable device. In animplementation, the first sensor signal 502A can be processed, forexample, to determine tested noise level of first sensor signal 504A. Inan implementation, tested noise level of first sensor signal 504A can berepresentative of a baseline value for a signal generated by the firstsensor. That is, a second sensor signal, which may be generated by or inassociation with a second sensor of a second wearable device, can becalibrated to the first sensor signal 502A based on tested noise levelof first sensor signal 504A. For example, in an implementation whereinthe first and second sensor are the same type of sensor, such as an EMGsensor, tested noise level of first sensor signal 504A can be used toremove baseline wander data from the second sensor signal to calibratethe second sensor signal to the first sensor signal 502A.

Referring to FIG. 5B, first sensor signal 502B and second sensor signal504B can be combined to generate or otherwise form a calibrated sensorsignal. First sensor signal 502B and second sensor signal 504B can beinput to a signal fusion 506B operation for combining same. In animplementation, signal fusion 506B can comprise using noise variance tocombine first sensor signal 502B and second sensor signal 504B. Forexample, first sensor signal 502B can be compared to second sensorsignal 504B to determine noise variance, which can be extracted,reduced, or otherwise manipulated to combine the data of the respectivesignals. In an implementation, signal fusion 506B can use a Kalmanfilter to combine first sensor signal 502B and second sensor 504B.Calibrated sensor signal 508B can be generated in response to signalfusion 506B, which calibrated sensor signal 508B can thus be a singlesensor signal calibrated based on two (or more) input signals.

FIG. 6 is a logic diagram 600 showing an implementation of how data frommultiple wearable devices are processed in accordance withimplementations of the disclosure. Implementations of logic diagram 600can be performed entirely on the wearable devices on which the sensordata is generated or on the wearable devices and a computing device incommunication with the wearable devices. For example, the signalprocessing aspects of logic diagram 600 can be performed by instructionsexecutable on the computing device. In an implementation, portions oflogic diagram 600 can be performed by instructions executable on thecomputing device and one or more other devices.

In an implementation, signal data 602 is generated by sensors of thewearable devices. For example, signal data 602 can comprise EMG data 604and accelerometer data 606 generated from one or more EMG sensors andaccelerometers, respectively, within one or more wearable devices. In animplementation, signal data 602 can comprise other or additional databased on the particular implementations of the sensors coupled to orotherwise operated in connection with the wearable devices.

In an implementation, signal data 602 is processed by variousoperations, such as signal pre-processing 608, feature extraction 610,and gesture recognition 612. In an implementation, signal pre-processing608 can be performed to remove extraneous signal features, such as thoseunnecessary for determining a gesture made using the wearable devices,from signal data 602. In an implementation, feature extraction 610 canbe performed on pre-processed signal data to isolate signal featuresusable for identifying the gestures made using the wearable devices, forexample, by extracting time-domain features and spatial features. In animplementation, gesture recognition 612 can be performed to determinethe actual gestures made using the wearable devices, for example, usingthe feature extracted signal data and offline training 614, which canprocess the feature extracted signal data based on labeled data. In animplementation, the output of gesture recognition 612 can includeinstructions for responding to an interactive event, for example, tocontrol a character of a video game.

Further implementations of the disclosure will now be described withreference to FIGS. 7 through 10. The steps, or operations, of anymethod, process, or algorithm described in connection with theembodiments disclosed herein may be embodied directly in hardware,firmware, software executed by hardware, circuitry, or a combination ofthese. Broadly, methods 700, 800, 900, and 1000 of FIGS. 7, 8, 9, and10, respectively, are used to perform certain processing and analysis asdiscussed above with respect to FIG. 6. In an implementation, methods700, 800, 900, and 1000 may be executed using one or more machines andhardware such as the equipment of FIGS. 1 through 4. One or all ofmethods 700, 800, 900, and 1000 may be performed, for example, byexecuting a machine-readable program of Javascript, C, or other suchinstructions. In an implementation, one or all of methods 700, 800, 900,and 1000 can be performed by a computing device, such as computingdevice 206 of FIG. 2, and/or by one or more other devices incommunication with the computing device and/or one or more wearabledevices, such as wearable devices 202, 204 of FIG. 2.

For ease of explanation, methods 700, 800, 900, and 1000 are depictedand described as a series of operations. However, operations inaccordance with this disclosure may occur in various orders and/orconcurrently. Additionally, operations in accordance with thisdisclosure may occur with other operations not presented and describedherein. Furthermore, not all illustrated operations may be required toimplement a method in accordance with the disclosed subject matter.

FIG. 7 is a flowchart showing an implementation of a method 700 forusing an implementation of the disclosure for gesture control ofinteractive events using multiple wearable devices. At operation 702,signal data indicative of gestures made by a user are received fromwearable devices. In an implementation, the signal data comprises data,such as sensor data 602 of FIG. 6, communicated from one or more sensorsincluded within, coupled to, or otherwise operative in connection withthe wearable devices. In an implementation, the signal data can becommunicated at separate times from the wearable devices orsimultaneously (or near simultaneous, as permitted by the hardwareconfigurations of the wearable devices and computing device). The signaldata is indicative of one or more gestures made by a user of thewearable devices and can be processed to interact with an interactiveevent, for example, by controlling a character of a video game.

At operation 704, the received signal data undergoes pre-processing, forexample, to remove extraneous features from the signal data. That is,signal pre-processing can be done to remove unnecessary data (e.g.,aspects of the communicated signal data not related or material todetermining a gesture indicated by the signal data). In animplementation, performing signal pre-processing includes using filters,for example, sliding-window-based average or median filters, adaptivefilters, low-pass filters, and the like, to remove the unnecessary data.Implementations for performing signal pre-processing are discussed belowwith respect to FIG. 8.

At operation 706, feature extraction is performed on the pre-processedsignal data, for example, to isolate signal features usable foridentifying gestures made using the wearable devices. That is, featureextraction can be done to determine exactly which portions of thecommunicated, pre-processed signal data are directed to the actualgestures made by the user of the wearable devices. In an implementation,performing feature extraction includes extracting one or moretime-domain and/or frequency-domain features from the pre-processedsignal data.

The time-domain features extractable from the pre-processed signal datainclude, for example, temporal mean features, feature variations withinspecified or unspecified time windows, local minimum temporal features,local maximum temporal features, temporal variances and medians,mean-crossing rates, and the like. The time-domain features can beidentified, for example, based on a correlation between sensors and/orwearable devices. The spatial features extractable from thepre-processed signal data include, for example, wavelet features, FastFourier transform features (e.g., peak positions), discrete cosinetransform features, arithmetic cosine transform features, Hilbert-Huangtransform features, spectrum sub-band energy features or ratios, and thelike. The spatial features can also include spectrum entropy, whereinhigh entropy can be discerned based on inactivity (e.g., stationarity)indicative of a uniform data distribution and low entropy can bediscerned based on activity (e.g., movement) indicative of a non-uniformdata distribution.

At operation 708, gestures made using the wearable devices can bedetermined based on the feature extracted signal data and offlinetraining data. That is, the signal data processed at operations 704 and706 can be used along with offline training data that is based onlabeled data to determine actual gestures made using the wearabledevices. In an implementation, determining the gestures includescomparing the processed signal data with the offline training data toreference similarities between them. Implementations for determininggestures using feature extracted signal data and offline training dataare discussed below with respect to FIG. 10.

FIG. 8 is a flowchart showing an implementation of a method 800 forperforming pre-processing on signal data received from multiple wearabledevices usable within implementations of the disclosure. In animplementation, method 800 represents sub-operations for performingoperation 704 of method 700. At operation 802, a first filter is appliedto the signal data to remove data outliers, which may, for example,represent portions of the communicated signal data not indicative of theactual gesture that was made. In an implementation, the first filter canbe a sliding-window-based filter, such as a sliding-window-based averagefilter or a sliding-window-based median filter.

At operation 804, adaptive filtering is performed with respect to thesignal data. In an implementation, adaptive filtering is performed usingindependent component analysis, for example, to distinguish betweensignal data features communicated from different sensors of the wearabledevices. In an implementation, performing adaptive filtering on thesignal data comprises determining a higher quality portion of the signaldata and processing the signal data using the higher quality portion todenoise a lower quality portion. Implementations for performing adaptivefiltering using independent component analysis are discussed below withrespect to FIG. 9.

At operation 806, data indicative of external forces included within thecommunicated signal data can be removed, for example, using a low-passfilter. In an implementation, the external forces can be any forceexternal to the gesture being made, for example, a gravitational force.Removal of external forces can be done to distinguish features of thecommunicated signal data indicative of user activity from thoseindicative of non-activity. For example, features indicative ofnon-activity can be removed from the signal data to better focus on datathat may be indicative of the gestures made.

At operation 808, the signal data can be segmented to completepre-processing. Segmentation can be done to better indicate or identifyaspects of the signal data comprising data indicative of the gesturemade by a user of the wearable devices, for example, by separating thesignal data into or otherwise identifying it as comprising differentgroups of data indicative of different gesture features. In animplementation, segmentation can be performed by applying asliding-window-based filter to the signal data. In an implementationwherein method 800 represents a sub-operation for performing operation704 of method 700, method 800 can conclude by continuing to an operationof method 700 following operation 704, for example, operation 706.

FIG. 9 is a flowchart showing an implementation of a method 900 forperforming adaptive filtering using independent component analysisusable within implementations of the disclosure. In an implementation,method 900 represents sub-operations for performing operation 804 ofmethod 800. At operation 902, independent component analysis isseparately performed on portions of the signal data received from thewearable devices. For example, the signal data can include data from afirst accelerometer of a first wearable device and a secondaccelerometer of a second wearable device. Independent componentanalysis can be performed on the first and second accelerometer data toseparately identify a synthetic noise signal representative of motionartifacts within the first and second accelerometer data.

At operation 904, signal data from one wearable device can be selectedas a higher quality portion of the signal data. For example, theadaptive filter can then test the signal data from the firstaccelerometer and the second accelerometer for random features based onthe synthetic noise signal, for example, based on a correlation betweenthe signal data and the motion artifacts. The test can be applied to thedata from each accelerometer individually such that a higher quality setof accelerometer data can be identified by comparing the tested firstaccelerometer data and the tested second accelerometer data. Forexample, the higher quality signal data can be determined based on aquantity of random features, wherein a lower quantity is indicative of ahigher quality.

At operation 906, the selected higher quality portion of the signal datacan be used to denoise a lower quality portion of the signal data. Thatis, the signal data can be processed using the higher quality signaldata to guide the denoising of the lower quality signal data. Forexample, where the first accelerometer data is determined to be thehigher quality signal data, the first accelerometer data is used todenoise the second accelerometer data. In an implementation, processingthe signal data in this way can be done using a least means squaresalgorithm. In an implementation wherein method 900 represents asub-operation for performing operation 804 of method 800, method 900 canconclude by continuing to an operation of method 800 following operation804, for example, operation 806.

FIG. 10 is a flowchart showing an implementation of a method 1000 fordetermining gestures based on feature extracted signal data and offlinetraining data usable within implementations of the disclosure. In animplementation, method 1000 represents sub-operations for performingoperation 708 of method 700. At operation 1002, portions of the signaldata received from the different wearable devices can be combined. Forexample, where two wearable devices are used for gesture control of aninteractive event, the signal data from a first wearable device can becombined with the signal data of the second wearable device to generateprocessed signal data. In an implementation, generating the processedsignal data can be done by adding the signal data of the first wearabledevice to the signal data of the second wearable device. In animplementation, generating the processed signal data can instead be doneby adding the signal data of the second wearable device to the signaldata of the first wearable device.

At operation 1004, gesture probabilities related to an interactive eventcan be identified. Operation 1004 can be performed before, after, or atthe same time as operation 1002 is performed. In an implementation, thegesture probabilities can be identified by referencing a librarycomprising data associated with one or more interactive events. In animplementation, the gesture probabilities can indicate a probabilitythat a corresponding gesture is signaled for the interactive event. Forexample, the probability can be based on the frequency that the gesturecan be made based on the interactive event (e.g., the frequency that acharacter of a video game can be controlled to move in a particulardirection or perform a particular action), the likelihood of the gesturebeing made based on a body part of the user to which the wearable devicecommunicating the signal data is coupled (e.g., by considering how oftenthe user's arm may be used to point towards or swing an object), and soon. In an implementation, the offline training data comprises dataindicative of combinations of all possible activity combinations andtheir corresponding gesture probabilities (e.g., based on gestures perbody part, past user data, etc.). In an implementation, otherbio-mechanical models indicative of body part gesture probabilities canbe included within or used as a supplementary reference by the offlinetraining data.

At operation 1006, the gesture made by the user using the wearabledevices can be determined by comparing the processed signal data ofoperation 1002 and the identified gesture probabilities of operation1004. For example, where the processed signal data is determined to besimilar or identical to gesture data represented within the offlinetraining data, it can be determined that the processed signal data isindicative of a gesture corresponding to that gesture data. In animplementation, comparing the processed signal data and the identifiedgesture probabilities relative to the interactive event can be done byoverlaying the respective data and quantizing the differences, wherein alower number of differences can be indicative of a higher similaritybetween the data. In an implementation wherein method 1000 represents asub-operation for performing operation 708 of method 700, method 1000can conclude by continuing to an operation of method 700 followingoperation 708. In an implementation wherein operation 708 represents afinal operation of method 700, the completion of method 1000 can alsoindicate the completion of method 700.

While the foregoing disclosure shows a number of illustrativeimplementations, it will be apparent to those skilled in the art thatvarious changes and modifications can be made herein without departingfrom the scope of the disclosure as defined by the appended claims.Accordingly, the disclosed implementations are representative of thesubject matter which is broadly contemplated by the present disclosure,and the scope of the present disclosure fully encompasses otherembodiments which may become obvious to those skilled in the art, andthat the scope of the present disclosure is accordingly to be limited bynothing other than the appended claims.

All structural and functional equivalents to the elements of theabove-described implementations that are known or later come to be knownto those of ordinary skill in the art are expressly incorporated hereinby reference and are intended to be encompassed by the present claims.Moreover, it is not necessary for a device or method to address each andevery problem sought to be solved by the present disclosure, for it tobe encompassed by the present claims.

The word “example” is used herein to mean serving as an example,instance, or illustration. Any aspect or design described herein as“example” is not necessarily to be construed as preferred oradvantageous over other aspects or designs. Rather, use of the word“example” is intended to present concepts in a concrete fashion. As usedin this application, the term “or” is intended to mean an inclusive “or”rather than an exclusive “or”. That is, unless specified otherwise, orclear from context, “X includes A or B” is intended to mean any of thenatural inclusive permutations. That is, if X includes A; X includes B;or X includes both A and B, then “X includes A or B” is satisfied underany of the foregoing instances. In addition, the articles “a” and “an”as used in this application and the appended claims should generally beconstrued to mean “one or more” unless specified otherwise or clear fromcontext to be directed to a singular form. Moreover, use of the term “animplementation” or “one implementation” throughout is not intended tomean the same implementation unless described as such.

Furthermore, although elements of the disclosure may be described orclaimed in the singular, reference to an element in the singular is notintended to mean “one and only one” unless explicitly so stated, butshall mean “one or more.” Additionally, ordinarily skilled artisans willrecognize in view of the present disclosure that while operationalsequences must be set forth in some specific order for the purpose ofexplanation and claiming, the present disclosure contemplates variouschanges beyond such specific order.

In addition, those of ordinary skill in the relevant art will understandthat information and signals may be represented using a variety ofdifferent technologies and techniques. For example, any data,instructions, commands, information, signals, bits, symbols, and chipsreferenced herein may be represented by voltages, currents,electromagnetic waves, magnetic fields or particles, optical fields orparticles, other items, or a combination of the foregoing.

Moreover, ordinarily skilled artisans will appreciate that anyillustrative logical blocks, modules, circuits, and process stepsdescribed herein may be implemented as electronic hardware, computersoftware, or combinations of both. To clearly illustrate thisinterchangeability of hardware and software, various illustrativecomponents, blocks, modules, circuits, and steps have been describedabove generally in terms of their functionality. Whether suchfunctionality is implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem. Skilled artisans may implement the described functionality invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the present disclosure. Further, any routines, platforms, orother functionality as disclosed herein associated with or implementedas software may be performed by software modules comprising instructionsexecutable by a process for performing the respective routine, platform,or other functionality.

The foregoing description describes only some examples ofimplementations of the described techniques. Other implementations areavailable. For example, the particular naming of the components,capitalization of terms, the attributes, data structures, or any otherprogramming or structural aspect is not mandatory or significant, andthe mechanisms that implement the systems and methods described hereinor their features may have different names, formats, or protocols.Further, the system may be implemented via a combination of hardware andsoftware, as described, or entirely in hardware elements. Also, theparticular division of functionality between the various systemcomponents described herein is merely by example, and not mandatory;functions performed by a single system component may instead beperformed by multiple components, and functions performed by multiplecomponents may instead performed by a single component.

It is to be understood that the present disclosure is not to be limitedto the disclosed implementations but, on the contrary, is intended tocover various modifications and equivalent arrangements included withinthe scope of the appended claims.

What is claimed is:
 1. A method for gesture control of an interactiveevent using multiple wearable devices, comprising: receiving, from afirst sensor of a first wearable device and a second sensor of a secondwearable device, signal data indicative of at least one gesture;performing, by a computing device in communication with the firstwearable device and the second wearable device, pre-processing on thesignal data; performing, by the computing device, feature extraction onthe pre-processed signal data; and determining, by the computing device,the at least one gesture based on the feature extracted signal data andoffline training data.
 2. The method of claim 1, wherein performingpre-processing on the signal data comprises: removing data outliers byapplying a first sliding-window-based filter to the signal data;performing adaptive filtering on the signal data in response to removingthe data outliers; removing data indicative of external force byapplying a low-pass filter to the adaptive filtered signal data; andsegmenting the signal data by applying a second sliding-window-basedfilter to the signal data in response to removing the data indicative ofexternal force.
 3. The method of claim 2, wherein performing adaptivefiltering on the signal data comprises: determining a higher qualityportion of the signal data; and processing the signal data using thehigher quality portion to denoise a lower quality portion of the signaldata using a least mean squares adaptive filter.
 4. The method of claim3, wherein determining a higher quality portion of the signal datacomprises: performing a first independent component analysis on portionsof the signal data received from the first sensor and a secondindependent component analysis on portions of the signal data receivedfrom the second sensor; and selecting the portions of the signal datareceived from the first sensor or the portions of the signal datareceived from the second sensor as the higher quality portion of thesignal data based on the first independent component analysis and thesecond independent component analysis.
 5. The method of claim 1, whereinperforming feature extraction on the pre-processed signal data comprisesextracting at least one of a time-domain feature or a frequency-domainfeature from the pre-processed signal data.
 6. The method of claim 1,wherein determining the at least one gesture comprises: combiningportions of the feature extracted signal data received from the firstsensor and portions of the feature extracted signal data received fromthe second sensor to generate processed signal data; identifying, basedon the offline training data, a library of interactive events, whereingesture probabilities associated with an interactive event indicate theprobability that a corresponding gesture is signalled for theinteractive event; and determining the at least one gesture by comparingthe processed signal data to gesture probabilities associated with theinteractive event.
 7. The method of claim 1, wherein the first sensorand the second sensor comprise one or more of a three-axisaccelerometer, a six-axis accelerometer, or an electromyography sensor.8. The method of claim 1, wherein the first sensor is configured tocalibrate the second sensor and wherein the second sensor is configuredto calibrate the first sensor.
 9. The method of claim 1, wherein thefirst wearable device and the second wearable device are in directcommunication.
 10. The method of claim 1, wherein at least one of thefirst wearable device or the second wearable device is a wristband. 11.A wearable device for gesture control of an interactive event,comprising: a body configured to be coupled to a portion of a user; asensor comprising an accelerometer and an electromyography sensor; acommunication component configured to communicate signal data generatedby the sensor to at least one of a computing device or a second wearabledevice in communication with the computing device; and a memory and aprocessor configured to execute instructions stored in the memory to:generate signal data indicative of a motion of the wearable device and amuscle activity of the portion of the user to which the body is coupled;and communicate the signal data to the computing device for determiningat least one gesture made by the user in connection with the interactiveevent.
 12. The wearable device of claim 11, wherein the accelerometercomprises at least one of a three-axis accelerometer or a six-axisaccelerometer.
 13. The wearable device of claim 11, wherein the sensorof the wearable device is configured to calibrate the sensor of thesecond wearable device and wherein the sensor of the second wearabledevice is configured to calibrate the sensor of the wearable device. 14.The wearable device of claim 11, wherein the wearable device is indirect communication with the second wearable device.
 15. The wearabledevice of claim 11, wherein the wearable device is a wristband.
 16. Asystem for gesture control of an interactive event using multiplewearable devices, comprising: a first wearable device comprising a firstaccelerometer, a first electromyography sensor, and a firstcommunication component; a second wearable device comprising a secondaccelerometer, a second electromyography sensor, and a secondcommunication component; a computing device in communication with thefirst communication component and the second communication component,the computing device comprising a memory and a processor configured toexecute instructions stored in the memory to: receive signal dataindicative of at least one gesture from the first wearable device andthe second wearable device; perform pre-processing on the signal data;perform feature extraction on the pre-processed signal data; anddetermine the at least one gesture based on the feature extracted signaldata and offline training data.
 17. The system of claim 16, wherein thefirst accelerometer and the second accelerometer comprise at least oneof a three-axis accelerometer or a six-axis accelerometer.
 18. Thesystem of claim 16, wherein the first accelerometer is configured tocalibrate the second accelerometer and wherein the second accelerometeris configured to calibrate the first accelerometer.
 19. The system ofclaim 16, wherein the first wearable device and the second wearabledevice are in direct communication.
 20. The system of claim 16, whereinat least one of the first wearable device or the second wearable deviceis a wristband.